/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.itschapala.dsw2.vista;

import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.itschapala.dsw2.biblioteca8a.bl.AutorBlLocal;
import mx.itschapala.dsw2.biblioteca8a.bl.LibroBlLocal;
import mx.itschapala.dsw2.biblioteca8a.modelo.Autor;
import mx.itschapala.dsw2.biblioteca8a.modelo.Libro;

/**
 *
 * @author Lindemann
 */
@ManagedBean
@SessionScoped
public class BookBean {
    
    //---------------EJB'S-------------------------

    @EJB
    private LibroBlLocal libroBl;
    @EJB
    private AutorBlLocal autorBl;
    
//------------------variables(propiedades)--------------
    private List<Libro> lista;
    private List<Autor> listaAutores;
    private int idAutorSeleccionado;
    private Libro book;
    private String accion;
    private Date date3;  
//-----------constructor--------------------------------
    
    public BookBean() {
        book=new Libro();
    }
    //-----------metodos GET y SET--------------------------------    

       
    public List<Libro> getLista() {
        lista = libroBl.getAll();
        return lista;
    }
    
    public List<Autor> getListaAutores() {
        listaAutores = autorBl.getAll();
        return listaAutores;
    }

    public Libro getBook() {
        return book;
    }

    public void setBook(Libro book) {
        this.book = book;
    }

    public int getIdAutorSeleccionado() {
        return idAutorSeleccionado;
    }

    public void setIdAutorSeleccionado(int idAutorSeleccionado) {
        this.idAutorSeleccionado = idAutorSeleccionado;
    }

    public Date getDate3() {
        return date3;
    }

    public void setDate3(Date date3) {
        this.date3 = date3;
    }
    
    

//-----------Acciones--------------------------------  
     public String procesarAccion() {
        if(accion.equalsIgnoreCase("Nuevo")){
        libroBl.register(book);
        } else if(accion.equalsIgnoreCase("Editar")){
                libroBl.modify(book);
            }
        else if(accion.equalsIgnoreCase("Eliminar")){
                libroBl.delete(book);
           
}
        accion="";
        return "LibroVista";
    }
     public String prepararAutor(){
         book.setIdautor(autorBl.findById(idAutorSeleccionado));
         return "LibroConfirmar";
     }
     
     
//-----------Listeners--------------------------------   
      public void prepararNuevo(ActionEvent evt){//accionEvent de faces
        book=new Libro();
        accion="Nuevo";
    }
    
    public void prepararEditar(ActionEvent evt){
        System.out.println(evt.getComponent().getClientId());
        String arr[]=evt.getComponent().getClientId().split(":");
        String num=arr[2];
        int index=Integer.parseInt(num);
        System.out.println("el numero es------------->>>>>>: "+index);
        book=lista.get(index);
        accion="Editar";
    }
    public void prepararEliminar(ActionEvent evt){
        String arr[]=evt.getComponent().getClientId().split(":");
        String num=arr[2];
        int index=Integer.parseInt(num);
        System.out.println("el numero es: "+index);
        book=lista.get(index);
        accion="Eliminar";
    }
}
